<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fr">
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="created" content="2018-10-23T06:18:10.521000000">
    <meta name="changed" content="2021-06-11T15:12:10:613000000">
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta http-equiv="Content-Language" content="fr">
    <title>
      Substituer des librairies
    </title>
    <link rel="stylesheet" type="text/css" href="../../style.css">
  </head>
  <body>
    <div class="maindiv">
      <h1>
        Substituer des librairies
      </h1>
      <p>
        Supposons que nous ayons deux circuits Logisim censés faire la même chose. En tant qu'instructeur, vous avez peut-être demandé aux élèves de terminer une tâche: vous avez un fichier contenant votre solution et vous avez plusieurs fichiers d'élèves contenant leur travail. La tâche consistait à créer un additionneur à deux bits.
      </p>
      <p>
        J'imagine que nous avons deux fichiers, nommés <tt><b>master.circ</b></tt> et <tt><b>query.circ</b></tt>. Chaque fichier contient un circuit nommé <b class="propertie">Adder2</b> (il est important que le nom du circuit à tester soit exactement le même), dont l'apparence est la suivante.
      </p>
        <table>
          <tbody>
            <tr>
              <td>
                <tt>Adder2 dans master.circ</tt>
              </td>
              <td>
                <tt>Adder2 dans query.circ</tt>
              </td>
            </tr>
            <tr>
              <td>
                <img src="../../../../img-guide/verify-adder-master.png" alt="#########">
              </td>
              <td>
                <img src="../../../../img-guide/verify-adder-query.png" alt="#########">
              </td>
            </tr>
          </tbody>
        </table>
      <p>
        Comme vous pouvez le constater, le circuit maître utilise l'additionneur intégré de Logisim, tandis que le circuit de requête utilise un demi-additionneur et un additionneur complet, eux-mêmes composés de portes logiques. Aux fins de notre exemple, le circuit de requête a une erreur stupide: le report <var>carry</var> du demi-additionneur n'est pas connecté à l'additionneur complet.
      </p>
      <p>
        Nous construisons notre circuit de test dans un fichier différent <tt><b>test.circ</b></tt>. Ensuite, nous chargeons <tt><b>master.circ</b></tt> en tant que bibliothèque Logisim à l'aide du menu <b class=menu>|&nbsp;Projet&nbsp;|</b>→<b class=menu>|&nbsp;Charger une Lirairie&nbsp;|</b>→ <b class=menu>|&nbsp;Bibliothèque Logisim&nbsp;|</b> , et nous insérons son additionneur 2 bits en tant que sous-circuit. Nous pourrions exécuter ce circuit directement pour vérifier que le résultat souhaité correspond à solution parfaite.
      </p>
      <blockquote>
	    <div class=forcode>
        <tt>java -jar logisim-evolution.jar test.circ -tty table</tt>
		</div>
      </blockquote>
      <p>
        Mais nous voulons exécuter le circuit en utilisant <tt><b>query.circ</b></tt> plutôt que <tt><b>master.circ</b></tt> comme bibliothèque chargée. Une approche naïve serait d'ouvrir Logisim et de charger adder-query.circ à la place de adder-master.circ ou encore vous pouvez simplement supprimer le fichier <tt><b>master.circ</b></tt> et renommer <tt><b>query.circ</b></tt> pour qu'il s'appelle <tt><b>master.circ</b></tt> . Ces deux approches fonctionnent, mais demandent beaucoup de manipulation pour tester les devoirs d'une classe par exemple. Heureusement Logisim inclut une option pratique <b class=porpertie>-sub</b> qui remplace temporairement un fichier par un autre pendant cette session; sans apporter de modifications sur le disque.
      </p>
      <blockquote>
	   <div class="forcode">
        <tt>java -jar logisim-evolution.jar test.circ -tty table -sub master.circ query.circ</tt>
		</div>
      </blockquote>
      <p>
        Le fichier de sortie qui sera généré de cette façon est présenté ci-dessous. Il est bien sûr différent de ce que nous avons vu dans <a href="index.html">la section précédente</a> , car la librairie commune aux circuits <tt><b>adder2</b></tt> a été remplacée dans le circuit de test par celle de <tt><b>query.circ</b></tt> erronée.
		
      </p>
      <blockquote>
        <pre>00      00      0E0
01      00      0E1
10      00      EE0
11      00      EE1
00      01      0E1
01      01      0E0
10      01      EE1
11      01      EE0
00      10      EE0
01      10      EE1
10      10      1E0
11      10      1E1
00      11      EE1
01      11      EE0
10      11      1E1
11      11      1E0
</pre>
      </blockquote>
      <p>
        <b>Suite:</b> <a href="other.html">Autres options de vérifications</a>.
      </p>
    </div>
  </body>
</html>
